/**
 * Project problem4
 */


#ifndef _QUERY_H
#define _QUERY_H

class Query {
public: 
    
/**
 * @param s
 */
void Query(const string& s);
    
/**
 * @param t
 */
QueryResult eval(const TextQuery t);
    
string rep();
private: 
    shared_ptr<QueryBase> q;
    
/**
 * @param query
 */
void Query(shared_ptr<QueryBase> query);
};

#endif //_QUERY_H